package com.xian.d2_static_util;

import java.util.Random;

/**
 * 工具类
 * 为什么工具类中的方法不用实例方法做?
 * 实例方法需要创建对象调用。
 * 此时用对象只是为了调用方法，这样只会浪费内存。
 *
 * 工具类是什么，有什么好处?
 * 内部都是一些静态方法，每个方法完成一个功能
 * 一次编写，处处可用，提高代码的重用性。
 */
public class XianUtil {
    /**
     * 工具类定义时的其他要求:
     * 由于工具里面都是静态方法，直接用类名即可访问，
     * 因此，工具类无需创建对象，建议将工具类的构造器进行私有。
     *
     * 注意:由于工具类无需创建对象，所以把其构造器私有化会显得很专业!
     */
    private XianUtil() {

    }

    /**
     * 静态方法
     */
    public static String createVertifyCode(int n) {

        //开发一个验证码
        //1、定义一个变量记住验证码
        String code = "";
        //2、定义一个变量记住全部验证码字符
        String data = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        //3、定义一个循环随机生成几个随机索引，去得到字符
        Random random = new Random();
        for (int i = 0; i < n; i++) {
            //4、获取随机索引对应的内容，，给code
            int index = random.nextInt(data.length());
            code += data.charAt(index);
        }

        return code;
    }

}
